package com.sy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sy.PageVO;
import com.sy.dto.CoursesByUidDTO;
import com.sy.dto.CoursesPageByUserDTO;
import com.sy.dto.CoursesPageDTO;
import com.sy.pojo.Courses;
import com.sy.vo.HotCourseVO;

import java.util.List;
import java.util.Map;


/**
 * @className: CoursesService
 * @author: Mr.Liu
 * @date: 2025/10/29 13:55
 * @Version: 1.0
 * @description:课程业务接口
 */

public interface CoursesService extends IService<Courses> {
    /*
     * @Author Mr.Liu
     * @Description //TODO 分页查询业务
     * @Date 14:58 2025/11/5
     * @Param [coursesPageDTO]
     * @return com.sy.PageVO<com.sy.pojo.Courses>
     **/
    PageVO<Courses> queryPage(CoursesPageDTO coursesPageDTO);
    /*
     * @Author Mr.Liu
     * @Description //TODO 用户端的课程查询业务
     * @Date 9:20 2025/11/6
     * @Param [coursesPageDTO]
     * @return com.sy.PageVO<com.sy.pojo.Courses>
     **/
    PageVO<Courses> queryCoursesPage(CoursesPageByUserDTO coursesPageDTO);
    /*
     * @Author Mr.Liu
     * @Description //TODO 添加课程及章节及小节
     * @Date 16:45 2025/11/6
     * @Param [courses]
     * @return boolean
     **/
    void insertCourses(Courses courses);
    /*
     * @Author Mr.Liu
     * @Description //TODO 根据id查询课程详情
     * @Date 10:38 2025/11/13
     * @Param [id]
     * @return com.sy.pojo.Courses
     **/
    Courses queryById(Integer id);
    /*
     * @Author Mr.Liu
     * @Description //TODO 查询我的课程
     * @Date 10:43 2025/11/13
     * @Param [coursesByUidDTO]
     * @return java.util.List<com.sy.pojo.Courses>
     **/
    List<Courses> queryCoursesByUid(CoursesByUidDTO coursesByUidDTO);
    /*
     * @Author Mr.Liu
     * @Description //TODO 热门课程业务实现
     * @Date 10:04 2025/11/14
     * @Param [limit]
     * @return java.util.List<com.sy.vo.HotCourseVO>
     **/
    List<HotCourseVO> hotCourse(Integer limit);


}
